CVS pserver und Viewvc installieren
Zuerst installieren wir die benötigten Programme.
root:~# apt-get install cvs viewvc xinetd
Nun erstellen wir zwei Gruppen cvspublic
und cvsadmin
.
root:~# groupadd -g 30000 cvspublic
root:~# groupadd -g 31000 cvsadmin
Nun erstellen wir zwei User cvspublic
und cvsadmin
.
root:~# adduser --quiet --shell /bin/false --no-create-home --disabled-password --gecos "cvspublic" --uid 30000 --gid 30000 cvspublic
root:~# adduser --quiet --shell /bin/false --no-create-home --disabled-password --gecos "cvsadmin" --uid 31000 --gid 31000 cvsadmin
Wir erstellen das cvs Repository.
root:~# cd /var/lib/
root:/var/lib# mkdir cvs
root:/var/lib# cvs -d /var/lib/cvs init
root:/var/lib# chown -R cvsadmin.cvsadmin cvs
Wir erstellen eine xinetd
Datei für unseren cvspserver.
root:/var/lib# cd
root:~# vi /etc/xinetd.d/cvspserver
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
user = root
wait = no
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root /var/lib/cvs pserver
disable = no
}
Nun starten wir den xinetd Daemon neu.
root:~# /etc/init.d/xinetd restart
Nun erstellen wir eine VirtualHost Datei mit dem namen viewcvs
.
root:~# vi /etc/apache2/sites-available/viewcvs
<VirtualHost *:80>
ServerSignature Off
ServerAdmin postmaster@example.com
ServerName viewvc.example.com
<IfModule mod_alias.c>
ScriptAlias /viewvc /usr/lib/cgi-bin/viewvc.cgi
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/$ /viewvc [R]
</IfModule>
<Location /viewvc>
AuthType Basic
AuthName "Password Required"
AuthUserFile /var/lib/cvs/CVSROOT/passwd
Require valid-user
Order deny,allow
Allow from all
</Location>
ErrorLog /var/log/apache2/viewvc-error.log
CustomLog /var/log/apache2/viewvc-access.log combined
LogLevel warn
</VirtualHost>
Nun aktivieren wir den vhost und starten den Apache neu.
root:~# a2ensite viewcvs
root:~# /etc/init.d/apache2 reload
Über die URL http://viewvc.example.com/ kann man dann auf die Repositories zugreifen. Zugang haben nur User die in der Datei /var/lib/cvs/CVSROOOT/passwd
definiert sind.